package com.zwr.sheller.customer.repository;

import com.zwr.sheller.core.pojo.GoodsVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
import org.springframework.stereotype.Component;


import java.util.Date;
import java.util.List;


/**
 * @author 付龙江
 * @date 2022/1/12 11:32
 */
@Component
public interface GoodsVoRepository extends ElasticsearchCrudRepository<GoodsVo,String> {
    /**
     * 首页搜索
     * @param goodsName 商品名
     * @param goodsTitle 商品标题
     * @param goodsKeyWord  商品关键词
     * @return 返回搜索到的商品
     */
    List<GoodsVo> findGoodsVoByGoodsNameEqualsOrGoodsTitleEqualsOrGoodsKeyWordEquals(String goodsName,String goodsTitle,String goodsKeyWord);

    /**
     * 根据商品名称模糊查询
     * @param name 商品名
     * @return 返回对应商品
     */
    List<GoodsVo> findGoodsVoByGoodsNameEquals (String name);

    /**
     * 根据商品编号，条件查寻
     * @param id 商品编号
     * @return 返回相关商品信息
     */
    GoodsVo findGoodsVoById(Long id);

    /**
     * 新品
     * @param typeName 商品1级分类
     * @param from 开始时间
     * @param to 结束时间
     * @param pageable 分页（每个分类暂时只取10条）
     * @return 返回对应的信息
     */
    List<GoodsVo> findGoodsVoByGoodsFirstItemNameAndGoodsShelfTimeBetween(String typeName, Date from, Date to,Pageable pageable);

    Page<GoodsVo> findGoodsVoByGoodsFirstItemNameAndGoodsIsRecommend(String typeName, Boolean isRecommend, Pageable pageable);


}
